{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d16ce92c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt \n",
    "from torch import nn,optim\n",
    "from torch.autograd import Variable\n",
    "import torch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "effd7dd1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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zZkzx4ERGjd27Fhp1qxZHX9ua2uT+vfvLy1btkzx+L/927+VJk2a1Oln48aNk372s5/ZOk6zjJ6fkd9NtwEgrVu3TvOYf/7nf5auueaaTj/78Y9/LE2cONHGkVlD5Pw+/vhjCYB0+vRpR8ZktRMnTkgApE8++UT1mET8Dnp2xkJJU1MTcnNzVf9+z549uHjxIoqLizt+dtVVV+GKK65ARUWFE0N0xNatW9G3b18MHz4cM2fORGNjY6KHZJm6ujo0NDR0eg+DwSDGjRvnuvewoqICPXv2xPXXX9/xs+LiYqSkpGDXrl2aj33zzTfRp08fFBYWYuHChTh37pzdw9XV2tqKPXv2dPq3T0lJQXFxseq/fUVFRafjAWDixImue68Ac+cHAN999x0GDhyIAQMGYPLkydi/f78Tw3WEl96/eIwcORJ5eXkoKSnBjh07Ej0cYU1NTQCged1LxHvo+CZkdjl06BB++9vf4vnnn1c9pqGhAenp6V3W8vv16+faNTWjSktL8cMf/hD5+fmora3FL37xC9x1112oqKhAampqoocXN/l96tevX6efu/E9bGho6DKleskllyA3N1dzrA8++CAGDhyI/v374/PPP8f8+fPx5Zdf4p133rF7yJpOnjyJtrY2xX/7L774QvExDQ0NnnivAHPnN3z4cLz22msYMWIEmpqa8Pzzz+Omm27C/v37bd1s0Slq7184HMb58+eRlZWVoJFZIy8vDy+99BKuv/56tLS04NVXX8Vtt92GXbt2YfTo0YkenqZIJIK5c+di/PjxKCwsVD0uEb+DrpuxWLBggWIyTfR/sb/kR48eRWlpKX70ox9hxowZCRq5GDPnZ8QDDzyAe++9F9deey2mTJmC999/H59++im2bt1q3UnosPscE83u83vssccwceJEXHvttZg2bRr+8Ic/YN26daitrbXwLMgKRUVFeOihhzBy5EjceuuteOedd3DppZfi5ZdfTvTQSMDw4cPxs5/9DGPGjMFNN92E1157DTfddBNWrFiR6KHpmjVrFqqrq/HWW28leihduG7G4h//8R/xyCOPaB4zePDgjv8/duwYbr/9dtx000343e9+p/m4UCiE1tZWnDlzptOsxfHjxxEKheIZtjCj5xevwYMHo0+fPjh06BDuuOMOy55Xi53nKL9Px48fR15eXsfPjx8/jpEjR5p6TqNEzy8UCnVJ+vv+++9x6tQpQ5+3cePGAWiflRsyZIjh8VqlT58+SE1N7VJFpfX7EwqFDB2fSGbOL1ZaWhpGjRqFQ4cO2TFEx6m9fzk5OZ6frVAzduxYbN++PdHD0DR79uyOZHC9mbFE/A66LrC49NJLcemllwode/ToUdx+++0YM2YMVq9ejZQU7QmYMWPGIC0tDVu2bMH9998PoD0b+Ouvv0ZRUVHcYxdh5Pys8O2336KxsbHTRdhudp5jfn4+QqEQtmzZ0hFIhMNh7Nq1y3D1jFmi51dUVIQzZ85gz549GDNmDACgvLwckUikI1gQUVVVBQCOvodK0tPTMWbMGGzZsgVTpkwB0D4du2XLFsyePVvxMUVFRdiyZQvmzp3b8bNNmzY59vtmhJnzi9XW1oZ9+/bh7rvvtnGkzikqKupSmujW988qVVVVCf9dUyNJEv7hH/4B69atw9atW5Gfn6/7mIT8DtqWFmqzb7/9Vho6dKh0xx13SN9++61UX1/f8V/0McOHD5d27drV8bPHH39cuuKKK6Ty8nLps88+k4qKiqSioqJEnIKuI0eOSHv37pWWLFkide/eXdq7d6+0d+9e6ezZsx3HDB8+XHrnnXckSZKks2fPSv/0T/8kVVRUSHV1ddLmzZul0aNHS8OGDZMuXLiQqNPQZPQcJUmSnnnmGalnz57S+vXrpc8//1yaPHmylJ+fL50/fz4Rp6CptLRUGjVqlLRr1y5p+/bt0rBhw6SpU6d2/H3sZ/TQoUPSv/3bv0mfffaZVFdXJ61fv14aPHiwdMsttyTqFDp56623pIyMDOn111+XampqpMcee0zq2bOn1NDQIEmSJP30pz+VFixY0HH8jh07pEsuuUR6/vnnpQMHDkiLFy+W0tLSpH379iXqFDQZPb8lS5ZIH330kVRbWyvt2bNHeuCBB6TMzExp//79iToFTWfPnu34HQMg/frXv5b27t0rHTlyRJIkSVqwYIH005/+tOP4//mf/5G6desmPfnkk9KBAwekVatWSampqVJZWVmiTkGT0fNbsWKF9O6770oHDx6U9u3bJ82ZM0dKSUmRNm/enKhT0DRz5kwpGAxKW7du7XTNO3fuXMcxbvgd9GxgsXr1agmA4n+yuro6CYD08ccfd/zs/Pnz0s9//nOpV69eUrdu3aT77ruvUzDiJg8//LDi+UWfDwBp9erVkiRJ0rlz56Q777xTuvTSS6W0tDRp4MCB0owZMzq+FN3I6DlKUnvJ6aJFi6R+/fpJGRkZ0h133CF9+eWXzg9eQGNjozR16lSpe/fuUk5OjvToo492CppiP6Nff/21dMstt0i5ublSRkaGNHToUOnJJ5+UmpqaEnQGXf32t7+VrrjiCik9PV0aO3astHPnzo6/u/XWW6WHH3640/H/8R//IV155ZVSenq6dM0110gbN250eMTGGDm/uXPndhzbr18/6e6775YqKysTMGoxcnll7H/yOT388MPSrbfe2uUxI0eOlNLT06XBgwd3+l10G6Pnt3z5cmnIkCFSZmamlJubK912221SeXl5YgYvQO2aF/2euOF3kNumExERkWVcVxVCRERE3sXAgoiIiCzDwIKIiIgsw8CCiIiILMPAgoiIiCzDwIKIiIgsw8CCiIiILMPAgoiIiCzDwIKIiIgsw8CCiIiILMPAgoiIiCzDwIKIiIgs8/8A/Wxt+0sZ/SIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x_data=np.linspace(-2,2,200)[:,np.newaxis] \n",
    "noise=np.random.normal(0,0.2,x_data.shape)\n",
    "y_data=np.square(x_data)+noise   #y=x**2+noise\n",
    "plt.scatter(x_data,y_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "9da03d13",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-2.        ],\n",
       "       [-1.9798995 ],\n",
       "       [-1.95979899],\n",
       "       [-1.93969849],\n",
       "       [-1.91959799],\n",
       "       [-1.89949749],\n",
       "       [-1.87939698],\n",
       "       [-1.85929648],\n",
       "       [-1.83919598],\n",
       "       [-1.81909548],\n",
       "       [-1.79899497],\n",
       "       [-1.77889447],\n",
       "       [-1.75879397],\n",
       "       [-1.73869347],\n",
       "       [-1.71859296],\n",
       "       [-1.69849246],\n",
       "       [-1.67839196],\n",
       "       [-1.65829146],\n",
       "       [-1.63819095],\n",
       "       [-1.61809045],\n",
       "       [-1.59798995],\n",
       "       [-1.57788945],\n",
       "       [-1.55778894],\n",
       "       [-1.53768844],\n",
       "       [-1.51758794],\n",
       "       [-1.49748744],\n",
       "       [-1.47738693],\n",
       "       [-1.45728643],\n",
       "       [-1.43718593],\n",
       "       [-1.41708543],\n",
       "       [-1.39698492],\n",
       "       [-1.37688442],\n",
       "       [-1.35678392],\n",
       "       [-1.33668342],\n",
       "       [-1.31658291],\n",
       "       [-1.29648241],\n",
       "       [-1.27638191],\n",
       "       [-1.25628141],\n",
       "       [-1.2361809 ],\n",
       "       [-1.2160804 ],\n",
       "       [-1.1959799 ],\n",
       "       [-1.1758794 ],\n",
       "       [-1.15577889],\n",
       "       [-1.13567839],\n",
       "       [-1.11557789],\n",
       "       [-1.09547739],\n",
       "       [-1.07537688],\n",
       "       [-1.05527638],\n",
       "       [-1.03517588],\n",
       "       [-1.01507538],\n",
       "       [-0.99497487],\n",
       "       [-0.97487437],\n",
       "       [-0.95477387],\n",
       "       [-0.93467337],\n",
       "       [-0.91457286],\n",
       "       [-0.89447236],\n",
       "       [-0.87437186],\n",
       "       [-0.85427136],\n",
       "       [-0.83417085],\n",
       "       [-0.81407035],\n",
       "       [-0.79396985],\n",
       "       [-0.77386935],\n",
       "       [-0.75376884],\n",
       "       [-0.73366834],\n",
       "       [-0.71356784],\n",
       "       [-0.69346734],\n",
       "       [-0.67336683],\n",
       "       [-0.65326633],\n",
       "       [-0.63316583],\n",
       "       [-0.61306533],\n",
       "       [-0.59296482],\n",
       "       [-0.57286432],\n",
       "       [-0.55276382],\n",
       "       [-0.53266332],\n",
       "       [-0.51256281],\n",
       "       [-0.49246231],\n",
       "       [-0.47236181],\n",
       "       [-0.45226131],\n",
       "       [-0.4321608 ],\n",
       "       [-0.4120603 ],\n",
       "       [-0.3919598 ],\n",
       "       [-0.3718593 ],\n",
       "       [-0.35175879],\n",
       "       [-0.33165829],\n",
       "       [-0.31155779],\n",
       "       [-0.29145729],\n",
       "       [-0.27135678],\n",
       "       [-0.25125628],\n",
       "       [-0.23115578],\n",
       "       [-0.21105528],\n",
       "       [-0.19095477],\n",
       "       [-0.17085427],\n",
       "       [-0.15075377],\n",
       "       [-0.13065327],\n",
       "       [-0.11055276],\n",
       "       [-0.09045226],\n",
       "       [-0.07035176],\n",
       "       [-0.05025126],\n",
       "       [-0.03015075],\n",
       "       [-0.01005025],\n",
       "       [ 0.01005025],\n",
       "       [ 0.03015075],\n",
       "       [ 0.05025126],\n",
       "       [ 0.07035176],\n",
       "       [ 0.09045226],\n",
       "       [ 0.11055276],\n",
       "       [ 0.13065327],\n",
       "       [ 0.15075377],\n",
       "       [ 0.17085427],\n",
       "       [ 0.19095477],\n",
       "       [ 0.21105528],\n",
       "       [ 0.23115578],\n",
       "       [ 0.25125628],\n",
       "       [ 0.27135678],\n",
       "       [ 0.29145729],\n",
       "       [ 0.31155779],\n",
       "       [ 0.33165829],\n",
       "       [ 0.35175879],\n",
       "       [ 0.3718593 ],\n",
       "       [ 0.3919598 ],\n",
       "       [ 0.4120603 ],\n",
       "       [ 0.4321608 ],\n",
       "       [ 0.45226131],\n",
       "       [ 0.47236181],\n",
       "       [ 0.49246231],\n",
       "       [ 0.51256281],\n",
       "       [ 0.53266332],\n",
       "       [ 0.55276382],\n",
       "       [ 0.57286432],\n",
       "       [ 0.59296482],\n",
       "       [ 0.61306533],\n",
       "       [ 0.63316583],\n",
       "       [ 0.65326633],\n",
       "       [ 0.67336683],\n",
       "       [ 0.69346734],\n",
       "       [ 0.71356784],\n",
       "       [ 0.73366834],\n",
       "       [ 0.75376884],\n",
       "       [ 0.77386935],\n",
       "       [ 0.79396985],\n",
       "       [ 0.81407035],\n",
       "       [ 0.83417085],\n",
       "       [ 0.85427136],\n",
       "       [ 0.87437186],\n",
       "       [ 0.89447236],\n",
       "       [ 0.91457286],\n",
       "       [ 0.93467337],\n",
       "       [ 0.95477387],\n",
       "       [ 0.97487437],\n",
       "       [ 0.99497487],\n",
       "       [ 1.01507538],\n",
       "       [ 1.03517588],\n",
       "       [ 1.05527638],\n",
       "       [ 1.07537688],\n",
       "       [ 1.09547739],\n",
       "       [ 1.11557789],\n",
       "       [ 1.13567839],\n",
       "       [ 1.15577889],\n",
       "       [ 1.1758794 ],\n",
       "       [ 1.1959799 ],\n",
       "       [ 1.2160804 ],\n",
       "       [ 1.2361809 ],\n",
       "       [ 1.25628141],\n",
       "       [ 1.27638191],\n",
       "       [ 1.29648241],\n",
       "       [ 1.31658291],\n",
       "       [ 1.33668342],\n",
       "       [ 1.35678392],\n",
       "       [ 1.37688442],\n",
       "       [ 1.39698492],\n",
       "       [ 1.41708543],\n",
       "       [ 1.43718593],\n",
       "       [ 1.45728643],\n",
       "       [ 1.47738693],\n",
       "       [ 1.49748744],\n",
       "       [ 1.51758794],\n",
       "       [ 1.53768844],\n",
       "       [ 1.55778894],\n",
       "       [ 1.57788945],\n",
       "       [ 1.59798995],\n",
       "       [ 1.61809045],\n",
       "       [ 1.63819095],\n",
       "       [ 1.65829146],\n",
       "       [ 1.67839196],\n",
       "       [ 1.69849246],\n",
       "       [ 1.71859296],\n",
       "       [ 1.73869347],\n",
       "       [ 1.75879397],\n",
       "       [ 1.77889447],\n",
       "       [ 1.79899497],\n",
       "       [ 1.81909548],\n",
       "       [ 1.83919598],\n",
       "       [ 1.85929648],\n",
       "       [ 1.87939698],\n",
       "       [ 1.89949749],\n",
       "       [ 1.91959799],\n",
       "       [ 1.93969849],\n",
       "       [ 1.95979899],\n",
       "       [ 1.9798995 ],\n",
       "       [ 2.        ]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "14cb0136",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 3.95889964],\n",
       "       [ 4.17334739],\n",
       "       [ 4.03615028],\n",
       "       [ 3.51118834],\n",
       "       [ 3.55229061],\n",
       "       [ 3.55988597],\n",
       "       [ 3.62466882],\n",
       "       [ 3.16692219],\n",
       "       [ 3.45402446],\n",
       "       [ 3.0924296 ],\n",
       "       [ 3.41154253],\n",
       "       [ 3.2721144 ],\n",
       "       [ 3.45771695],\n",
       "       [ 3.22036   ],\n",
       "       [ 2.93787979],\n",
       "       [ 2.52308013],\n",
       "       [ 2.72113892],\n",
       "       [ 2.79318454],\n",
       "       [ 3.00137646],\n",
       "       [ 2.5763186 ],\n",
       "       [ 2.60479419],\n",
       "       [ 2.70564084],\n",
       "       [ 2.50675695],\n",
       "       [ 2.39699099],\n",
       "       [ 2.10735157],\n",
       "       [ 2.48158064],\n",
       "       [ 1.785955  ],\n",
       "       [ 2.0075263 ],\n",
       "       [ 2.13946274],\n",
       "       [ 1.86226066],\n",
       "       [ 1.85527802],\n",
       "       [ 2.10087088],\n",
       "       [ 1.74115406],\n",
       "       [ 1.67780502],\n",
       "       [ 1.59049318],\n",
       "       [ 1.85774828],\n",
       "       [ 1.49149756],\n",
       "       [ 1.50337378],\n",
       "       [ 1.62063062],\n",
       "       [ 1.401704  ],\n",
       "       [ 1.49061582],\n",
       "       [ 1.32282298],\n",
       "       [ 1.43658017],\n",
       "       [ 1.02694971],\n",
       "       [ 1.20649201],\n",
       "       [ 1.18845091],\n",
       "       [ 1.21966134],\n",
       "       [ 0.7391342 ],\n",
       "       [ 1.21738407],\n",
       "       [ 0.94161913],\n",
       "       [ 1.31973514],\n",
       "       [ 0.70316406],\n",
       "       [ 0.77849283],\n",
       "       [ 0.92377103],\n",
       "       [ 0.61370723],\n",
       "       [ 0.62715638],\n",
       "       [ 0.69353468],\n",
       "       [ 0.96441617],\n",
       "       [ 0.79928382],\n",
       "       [ 0.78683853],\n",
       "       [ 0.84790521],\n",
       "       [ 0.73960155],\n",
       "       [ 0.57819194],\n",
       "       [ 0.45010381],\n",
       "       [ 0.47577679],\n",
       "       [ 0.34182063],\n",
       "       [ 0.69363239],\n",
       "       [ 0.88459115],\n",
       "       [ 0.7820845 ],\n",
       "       [ 0.19374755],\n",
       "       [ 0.31207499],\n",
       "       [ 0.18701814],\n",
       "       [ 0.43165295],\n",
       "       [ 0.31701585],\n",
       "       [ 0.22414555],\n",
       "       [ 0.28764375],\n",
       "       [ 0.49977689],\n",
       "       [-0.19462125],\n",
       "       [ 0.29149083],\n",
       "       [ 0.48658962],\n",
       "       [ 0.29015775],\n",
       "       [ 0.03811243],\n",
       "       [ 0.05959811],\n",
       "       [ 0.05021411],\n",
       "       [-0.22759063],\n",
       "       [ 0.02407545],\n",
       "       [ 0.23086464],\n",
       "       [ 0.0781901 ],\n",
       "       [ 0.07934083],\n",
       "       [ 0.13002197],\n",
       "       [-0.07202325],\n",
       "       [ 0.098725  ],\n",
       "       [ 0.20534214],\n",
       "       [ 0.04794349],\n",
       "       [ 0.14224723],\n",
       "       [ 0.10133868],\n",
       "       [ 0.38409555],\n",
       "       [-0.08754919],\n",
       "       [-0.49414514],\n",
       "       [-0.02790828],\n",
       "       [ 0.10283637],\n",
       "       [ 0.04586241],\n",
       "       [ 0.15881939],\n",
       "       [-0.32564185],\n",
       "       [ 0.44199721],\n",
       "       [-0.11251813],\n",
       "       [-0.04991516],\n",
       "       [ 0.17024596],\n",
       "       [ 0.15949227],\n",
       "       [ 0.09714199],\n",
       "       [ 0.04706297],\n",
       "       [ 0.39014533],\n",
       "       [ 0.04022606],\n",
       "       [ 0.03443244],\n",
       "       [-0.24428841],\n",
       "       [ 0.14129719],\n",
       "       [ 0.13718853],\n",
       "       [-0.35898691],\n",
       "       [ 0.38400254],\n",
       "       [ 0.37819031],\n",
       "       [ 0.31929974],\n",
       "       [-0.09574351],\n",
       "       [ 0.44967919],\n",
       "       [ 0.28479019],\n",
       "       [ 0.41744438],\n",
       "       [ 0.29782332],\n",
       "       [ 0.47240838],\n",
       "       [ 0.25102775],\n",
       "       [ 0.32220963],\n",
       "       [ 0.47837048],\n",
       "       [ 0.08695209],\n",
       "       [ 0.06928909],\n",
       "       [ 0.50398373],\n",
       "       [ 0.73357574],\n",
       "       [ 0.404461  ],\n",
       "       [ 0.60446032],\n",
       "       [ 0.47987557],\n",
       "       [ 0.28464972],\n",
       "       [ 0.51836278],\n",
       "       [ 0.80151607],\n",
       "       [ 0.46357271],\n",
       "       [ 0.78964757],\n",
       "       [ 0.57556113],\n",
       "       [ 1.2977921 ],\n",
       "       [ 0.9087017 ],\n",
       "       [ 0.77162734],\n",
       "       [ 0.81591618],\n",
       "       [ 1.08253681],\n",
       "       [ 0.8270566 ],\n",
       "       [ 1.41864353],\n",
       "       [ 0.8586568 ],\n",
       "       [ 1.51152076],\n",
       "       [ 1.18417133],\n",
       "       [ 1.13424122],\n",
       "       [ 1.13301863],\n",
       "       [ 1.20307132],\n",
       "       [ 1.08170235],\n",
       "       [ 1.56188115],\n",
       "       [ 1.24268267],\n",
       "       [ 1.35694538],\n",
       "       [ 1.72139085],\n",
       "       [ 0.94456013],\n",
       "       [ 1.93890447],\n",
       "       [ 1.53619256],\n",
       "       [ 1.73384216],\n",
       "       [ 1.7697654 ],\n",
       "       [ 1.85351615],\n",
       "       [ 1.4694652 ],\n",
       "       [ 2.37640548],\n",
       "       [ 1.98067086],\n",
       "       [ 2.03135752],\n",
       "       [ 2.26878944],\n",
       "       [ 2.49704283],\n",
       "       [ 1.92667322],\n",
       "       [ 2.48787771],\n",
       "       [ 2.33155598],\n",
       "       [ 2.1806129 ],\n",
       "       [ 2.27334042],\n",
       "       [ 2.68409153],\n",
       "       [ 2.5846591 ],\n",
       "       [ 2.650413  ],\n",
       "       [ 2.70039932],\n",
       "       [ 2.89627473],\n",
       "       [ 2.86497764],\n",
       "       [ 2.52916953],\n",
       "       [ 2.828291  ],\n",
       "       [ 2.74155647],\n",
       "       [ 3.37742512],\n",
       "       [ 3.38859657],\n",
       "       [ 3.33292646],\n",
       "       [ 3.8373596 ],\n",
       "       [ 3.15801684],\n",
       "       [ 3.68611699],\n",
       "       [ 3.55363179],\n",
       "       [ 3.72229184],\n",
       "       [ 3.34043584],\n",
       "       [ 3.82889103],\n",
       "       [ 3.88683293],\n",
       "       [ 3.97653923],\n",
       "       [ 3.98829482]])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "dda2e996",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_data=torch.FloatTensor(x_data)\n",
    "y_data=torch.FloatTensor(y_data)\n",
    "inputs=Variable(x_data)\n",
    "target=Variable(y_data)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3f127bdc",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "#定义网络结构\n",
    "class LinearRegression(nn.Module):\n",
    "    def __init__(self):  # 定义初始化\n",
    "        super(LinearRegression, self).__init__()  # 调用父类的构造函数\n",
    "        # 1-10-1\n",
    "        self.fc1 = nn.Linear(1, 10)  # 第一层：1个输入，10个输出\n",
    "        self.tanh = nn.Tanh()         # 激活函数\n",
    "        self.fc2 = nn.Linear(10, 1)   # 第二层：10个输入，1个输出\n",
    "        \n",
    "    def forward(self, x):\n",
    "        x = self.fc1(x)              # 通过第一层\n",
    "        x = self.tanh(x)             # 经过 Tanh 激活\n",
    "        x = self.fc2(x)              # 通过第二层\n",
    "        return x                     # 返回输出"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8df2b6b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "#定义模型\n",
    "model=LinearRegression()\n",
    "mse_loss=nn.MSELoss()\n",
    "optimizer=optim.SGD(model.parameters(),lr=0.3)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "f5161068",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "name:fc1.weight,param:Parameter containing:\n",
      "tensor([[ 0.8905],\n",
      "        [-0.3752],\n",
      "        [-0.2755],\n",
      "        [ 0.1525],\n",
      "        [ 0.4333],\n",
      "        [ 0.3942],\n",
      "        [ 0.2864],\n",
      "        [-0.9976],\n",
      "        [-0.5667],\n",
      "        [-0.7276]], requires_grad=True)\n",
      "name:fc1.bias,param:Parameter containing:\n",
      "tensor([-0.7500,  0.3295, -0.8169,  0.1137, -0.2732,  0.8858, -0.6895,  0.5019,\n",
      "        -0.9062,  0.5448], requires_grad=True)\n",
      "name:fc2.weight,param:Parameter containing:\n",
      "tensor([[ 0.2101,  0.2275, -0.2144, -0.0231,  0.2943, -0.1700, -0.3043, -0.2841,\n",
      "          0.2978,  0.1036]], requires_grad=True)\n",
      "name:fc2.bias,param:Parameter containing:\n",
      "tensor([0.0815], requires_grad=True)\n"
     ]
    }
   ],
   "source": [
    "for name,parameters in model.named_parameters():\n",
    "    print('name:{},param:{}'.format(name,parameters))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "0cc0bf41",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 3.198007106781006\n",
      "200 0.8353044390678406\n",
      "400 0.1086425706744194\n",
      "600 0.08757048845291138\n",
      "800 0.070228710770607\n",
      "1000 0.06346669048070908\n",
      "1200 0.060637183487415314\n",
      "1400 0.05930984392762184\n",
      "1600 0.0585046112537384\n",
      "1800 0.057874564081430435\n",
      "2000 0.057337235659360886\n",
      "2200 0.05687764659523964\n",
      "2400 0.05646882951259613\n",
      "2600 0.056080013513565063\n",
      "2800 0.05571698769927025\n",
      "3000 0.05538368225097656\n",
      "3200 0.05507001280784607\n",
      "3400 0.0547715462744236\n",
      "3600 0.054490163922309875\n",
      "3800 0.054223060607910156\n",
      "4000 0.053968820720911026\n",
      "4200 0.05372419208288193\n",
      "4400 0.053494032472372055\n",
      "4600 0.05327172204852104\n",
      "4800 0.05305512994527817\n"
     ]
    }
   ],
   "source": [
    "for i in range(5000):\n",
    "    out=model(inputs)  #out就是预测值\n",
    "    #计算loss\n",
    "    loss=mse_loss(out,target)\n",
    "    #梯度清零\n",
    "    optimizer.zero_grad()\n",
    "    #计算梯度\n",
    "    loss.backward()\n",
    "    #修改全值\n",
    "    optimizer.step()\n",
    "    if i%200 ==0:\n",
    "        print(i,loss.item())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "57af52ec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_pred=model(inputs)\n",
    "plt.scatter(x_data,y_data)\n",
    "plt.plot(x_data,y_pred.data.numpy(),'r-',lw=3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0a0fff16",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:yzk] *",
   "language": "python",
   "name": "conda-env-yzk-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.20"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
